Finding Optimal Hardware Configurations For C Code
نویسندگان
چکیده
To look at a piece of C code especially an uncommented one is often not very enlightening. Even small pieces of code with one or two functions will often appear to perform the same array initializations, loops over the data, and basic arithmetic functions, without clearly indicating what the overall purpose of the routine is. This can be frustrating to those using the code as part of a package who are forced to understand it as a “black box,” without completely understanding its properties. More specifically, attempting to find the most optimal way to run the code becomes a very difficult problem if there are, for example, several different choices of harware to choose from, and the actions of the program are a mystery. In this problem, we choose to attack a tractable subproblem that we hope will be helpful for deciding how to run this software for a user with several different hardware options. Specifically, we have observed that most single code files perform one of two functions: data manipulation and computation. We hope to be able to successfully classify C code files into these two main categories to allow a user who has not been informed of its functionality to quickly determine its core purpose, and use this information to enhance performance of the overall project. We choose to look at the assembly representation of these files, whose simple structure and more limited vocabulary we believe contain the key clues to functionality in order to perform this classification. Generally, the conversion to assembly is done “behind the scenes,” and only a small percentage of programmers actually feel comfortable reading any particular type of assembly and understanding what it does, so we believe that assembly is underutilized in understanding code’s functionality. Thus, we also hope that classifying code in this manner will provide a strong argument for using assembly to extract features of code for use in future machine learning applications pertaining to C or other programming languages, and eliminate the need to look at assembly directly.
منابع مشابه
Finding near-perfect parameters for hardware and code optimizations with automatic multi-objective design space explorations
In the design process of computer systems or processor architectures, typically many different parameters are exposed to configure, tune, and optimize every component of a system. For evaluations and before production, it is desirable to know the best setting for all parameters. Processing speed is no longer the only objective that needs to be optimized; power consumption, area, and so on have ...
متن کاملReview of transmission scanning configurations in cardiac SPECT
The diagnostic accuracy of single photon emission computed tomography (SPECT) is profoundly influenced by attenuation phenomenon. Soft tissue attenuation degrades cardiac SPECT image quality, thereby decreasing the possibility of the detection of the lesions. A variety of correction techniques based on different assumptions have been used to reduce the impact of attenuation. Several types of sy...
متن کاملA Box-Behnken experimental design for microwave assisted extraction optimization of pectin from citron peel
Microwave assisted extraction technique was employed to extract pectin from citron peel. Box-Behnken design was applied to investigate the influence of irradiation time, microwave power and pH on the yield and DE of pectin. The finding indicated that the optimal conditions for the maximum yield of pectin (30.71%) were achieved at irradiation time of 3 min, microwave power of 700 W and pH of 1.5...
متن کاملOptimizing Performance of Stencil Code with SPL Conqueror
A standard technique to numerically solve elliptic partial differential equations on structured grids is to discretize them via finite differences and then to apply an efficient geometric multi-grid solver. Unfortunately, finding the optimal choice of multi-grid components and parameters is challenging and platform dependent, especially, in cases where domain knowledge is incomplete. Auto-tunin...
متن کاملExperiments on Optimizing the Performance of Stencil Codes with SPL Conqueror
A standard technique for numerically solving elliptic partial differential equations on structured grids is to discretize them, and, then, to apply an efficient geometric multi-grid solver. Unfortunately, finding the optimal choice of multi-grid components and parameter settings is challenging and existing auto-tuning techniques fail to explain performanceoptimal settings. To improve the state ...
متن کامل